One of the fundamental requirements of many applications of digital electronics to the control of processes or machines is that of collecting information relating to the time of occurrence of events, the number of events and similar time-related information. A classic example is that of digital control of spark timing or fuel injection in an internal combustion engine. Information relating to the present angular position of the engine and the present engine speed must be collected in order to perform the required control functions. The former is often collected as a time at which the engine was at some known angular position and the latter is often collected as a number of events which have occurred in a certain period of time. Many general purpose and special purpose digital timer devices have been designed to accomplish various time-related data collection tasks.
An example of a widely available general purpose timer apparatus is the timer included as a sub-system within the M68HC11 microcontrollers, available from Motorola, Inc. of Austin, Tex. This timer sub-system includes several input capture channels, a periodic interrupt signal generator and a pulse accumulator, among other time-related features. This timer sub-system can be used in conjunction with software executing on the main CPU of the M68HC11 to fulfill a very broad range of event timing and counting functions.
A disadvantage of many general purpose timer systems is the high degree of software intervention required to perform many specific functions. In an M68HC11-based system, for example, it is possible to cause the main CPU to spend so much time servicing interrupt requests generated by the timer sub-system that very little time is available to perform other necessary functions.
A particular example of a machine control application which requires significant time-related data collection is anti-lock braking systems (ABS). ABS requires frequent monitoring of the angular velocity of all four wheels of a vehicle. Increasing the frequency with which this data is collected is an important goal of ABS designers as they attempt to improve the performance of ABS systems. However, this creates an increasing burden on the timer sub-system which must perform the data collection and on the processor which must service interrupt requests from that timer sub-system. ABS is simply one example of many applications in which the angular velocity of a rotating member must be measured frequently and with high resolution. Another example of such an application is electronic control of an automatic transmission.
Accordingly, a digital timer apparatus which can efficiently collect information relating to the time of occurrence of events, the number of events and similar time-related information is required. Particularly, such an apparatus which can perform as a sub-system of a microcontroller without unduly burdening the main CPU of that microcontroller with interrupt service requests is required. Finally, any such apparatus must be sufficiently flexible to accommodate the needs of the designers of widely varying systems in order to achieve the high sales volumes necessary to realize economics of scale in production.